Functional Programming ---------------------- [(Up)](../../README.md#topics) | _See also: [Lambda Calculus](../Lambda%20Calculus/README.md#lambda-calculus)_ - - - - ### Web resources [Functors, Applicatives, And Monads In Pictures - adit.io](https://adit.io/posts/2013-04-17-functors,_applicatives,_and_monads_in_pictures.html) ★★★ [functional programming - What is the origin and meaning of the phrase "Lambda the ultimate?" - Software Engineering Stack Exchange](https://softwareengineering.stackexchange.com/questions/107687/what-is-the-origin-and-meaning-of-the-phrase-lambda-the-ultimate) ★ [compiler construction - Converting a function to use tail recursion -- a formal study - Stack Overflow](https://stackoverflow.com/questions/10700807/converting-a-function-to-use-tail-recursion-a-formal-study) ★ [Do Applicative Functors Generalize the S & K Combinators? - Brandon.Si(mmons)](http://brandon.si/code/do-applicative-functors-generalize-the-s-k-combinators/) ★ [Railway Oriented Programming | F# for fun and profit](https://fsharpforfunandprofit.com/rop/) ★★ [interpreters - How to implement scheme\'s letrec in a lazy dialect? - Computer Science Stack Exchange](https://cs.stackexchange.com/questions/83113/how-to-implement-schemes-letrec-in-a-lazy-dialect) ★ [💭](commentary/Chris%20Pressey.md#interpreters---how-to-implement-schemes-letrec-in-a-lazy-dialect---computer-science-stack-exchange) [Recitation 21: Let Expressions & The Environment Model](https://www.cs.cornell.edu/courses/cs312/2004fa/lectures/rec21.html) ★ _(in [Compiler Construction](../Compiler%20Construction/README.md#compiler-construction))_ [Example assembly/machine instruction from lambda calculus](https://stackoverflow.com/questions/67594976/example-assembly-machine-instruction-from-lambda-calculus) ★★ [💭](commentary/Chris%20Pressey.md#example-assembly-machine-instruction-from-lambda-calculus) _(in [Game Development](../Game%20Development/README.md#game-development))_ [javascript - Immutable.js: Data structure to represent 2D game field - Stack Overflow](https://stackoverflow.com/questions/36603998/immutable-js-data-structure-to-represent-2d-game-field) ★ _(in [JavaScript](../JavaScript/README.md#javascript))_ [functional programming - How are people implementing immutable data structures in JavaScript when the language doesn't offer any obvious way of implementing immutability? - Stack Overflow](https://stackoverflow.com/questions/67758847/how-are-people-implementing-immutable-data-structures-in-javascript-when-the-lan) ★ ### Repositories [PseudoPower/AFSM: Arrowized functional state machines](https://github.com/PseudoPower/AFSM) ★★★ _(in [Compiler Construction](../Compiler%20Construction/README.md#compiler-construction))_ [natefaubion/example-functional-compiler](https://github.com/natefaubion/example-functional-compiler) ★ _(in [Programming Languages](../Programming%20Languages/README.md#programming-languages))_ [ympbyc/Carrot: Purely functional lisp featuring: default currying, left-associative s-expression, lazy evaluation, static type system, and statically determined multimethods.](https://github.com/ympbyc/Carrot) ★★★ _(in [Programming Languages](../Programming%20Languages/README.md#programming-languages))_ [ncihnegn/miranda: Miranda is a pure, non-strict, polymorphic, higher order functional programming language designed by David Turner in 1983-6.](https://github.com/ncihnegn/miranda) ★ _(in [Programming Languages](../Programming%20Languages/README.md#programming-languages))_ [UnrealVerseGuru/VerseProgrammingLanguage: Verse Programming Language - Functional logic language developed by Epic Games - all informations, official resources and snippets](https://github.com/UnrealVerseGuru/VerseProgrammingLanguage) ★ _(in [User Interface](../User%20Interface/README.md#user-interface))_ [art-w/unicorn: Purely functional GUI algebra](https://github.com/art-w/unicorn) ★★ ### Papers A tutorial on the universality and expressiveness of fold (online @ [www.cs.nott.ac.uk](https://www.cs.nott.ac.uk/~pszgmh/fold.pdf)) ★★★ [💭](commentary/Chris%20Pressey.md#a-tutorial-on-the-universality-and-expressiveness-of-fold) Total Functional Programming (online @ [www.jucs.org](https://www.jucs.org/jucs_10_7/total_functional_programming/jucs_10_07_0751_0768_turner.pdf)) ★★ [💭](commentary/Chris%20Pressey.md#total-functional-programming) Turner, Bird, Eratosthenes: An Eternal Burning Thread (online @ [www.cs.ox.ac.uk](https://www.cs.ox.ac.uk/people/jeremy.gibbons/publications/erato.pdf)) ★ [💭](commentary/Chris%20Pressey.md#turner-bird-eratosthenes-an-eternal-burning-thread) Fast and Loose Reasoning is Morally Correct (online @ [www.cs.ox.ac.uk](https://www.cs.ox.ac.uk/jeremy.gibbons/publications/fast+loose.pdf)) ★ [💭](commentary/Chris%20Pressey.md#fast-and-loose-reasoning-is-morally-correct) let (rec) insertion without effects, lights or magic (online @ [icfp19.sigplan.org](https://icfp19.sigplan.org/details/mlfamilyworkshop-2019-papers/6/let-rec-insertion-without-effects-lights-or-magic)) [💭](commentary/Chris%20Pressey.md#let-rec-insertion-without-effects-lights-or-magic) _(in [Computational Complexity](../Computational%20Complexity/README.md#computational-complexity))_ Pure vs Impure Lisp (online @ [dl.acm.org](https://dl.acm.org/doi/pdf/10.1145/244795.244798)) _(in [Type Systems](../Type%20Systems/README.md#type-systems))_ Initial Algebra Semantics is Enough! (online @ [libres.uncg.edu](https://libres.uncg.edu/ir/asu/f/Johann_Patricia_2007_Intitial%20Algebra%20Semantics%20Is%20Enough.pdf)) ★ [💭](commentary/Chris%20Pressey.md#initial-algebra-semantics-is-enough) ### Books Structure and Interpretation of Computer Programs (online @ [archive.org](https://archive.org/details/StructureAndInterpretationOfComputerProgramsSecondEdition) (2nd ed.), [archive.org](https://archive.org/details/pdfy-x0q2Q4K6h-gsWbes) (2nd ed. HTML)) (borrow @ [archive.org](https://archive.org/details/structureinterpr00abel) (1st ed.)) [💭](commentary/Chris%20Pressey.md#structure-and-interpretation-of-computer-programs) Purely Functional Data Structures (online @ [archive.org](https://archive.org/details/okasaki-purely-functional-data-structures)) ACM Symposium on LISP and Functional Programming, 1984 (borrow @ [archive.org](https://archive.org/details/acmsymposiumonli0000boye)) ★ [💭](commentary/Chris%20Pressey.md#acm-symposium-on-lisp-and-functional-programming-1984) _(in [Type Theory](../Type%20Theory/README.md#type-theory))_ Type Theory and Functional Programming (online @ [www.cs.kent.ac.uk](https://www.cs.kent.ac.uk/people/staff/sjt/TTFP/ttfp.pdf))